var M1;
(function(M) {
    function fn(x) {
        return '';
    }
    M.fn = fn;
})(M1 || (M1 = {
}));
var x;
switch(x){
    case '':
    case 12:
    case true:
    case null:
    case undefined:
    case new Date(12):
    case new Object():
    case /[a-z]/:
    case []:
    case {
    }:
    case {
        id: 12
    }:
    case [
        'a'
    ]:
    case typeof x:
    case typeof M1:
    case M1.fn(1):
    case (x)=>''
    :
    case ((x)=>''
    )(2):
    default:
}
// basic assignable check, rest covered in tests for 'assignment compatibility'
class C {
}
class D extends C {
}
switch(new C()){
    case new D():
    case {
        id: 12,
        name: ''
    }:
    case new C():
}
switch(''){
}
switch(12){
}
switch(true){
}
switch(null){
}
switch(undefined){
}
switch(new Date(12)){
}
switch(new Object()){
}
switch(/[a-z]/){
}
switch([]){
}
switch({
}){
}
switch({
    id: 12
}){
}
switch([
    'a'
]){
}
switch((x)=>''
){
}
switch(((x)=>''
)(1)){
}
